package com.mce.nebula.repository;

import com.mce.nebula.entity.TeamUser;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Optional;

/**
 * 团队成员数据访问接口
 */
@Repository
public interface TeamUserRepository extends JpaRepository<TeamUser, Long> {
    
    /**
     * 根据团队ID查找成员列表
     */
    List<TeamUser> findByTenantId(String tenantId);
    
    /**
     * 根据用户ID查找团队列表
     */
    List<TeamUser> findByUserId(Integer userId);
    
    /**
     * 根据团队ID和用户ID查找
     */
    Optional<TeamUser> findByTenantIdAndUserId(String tenantId, Integer userId);
    
    /**
     * 根据团队ID和身份查找成员
     */
    List<TeamUser> findByTenantIdAndIdentity(String tenantId, String identity);
    
    /**
     * 查找激活的团队成员
     */
    List<TeamUser> findByTenantIdAndIsActiveTrue(String tenantId);
    
    /**
     * 检查用户是否在团队中
     */
    boolean existsByTenantIdAndUserId(String tenantId, Integer userId);
    
    /**
     * 根据企业ID查找团队成员
     */
    @Query("SELECT tu FROM TeamUser tu WHERE tu.enterpriseId = :enterpriseId")
    List<TeamUser> findByEnterpriseId(@Param("enterpriseId") String enterpriseId);
}





